#include <iostream>
#include "seq_list_test.h"
#include "single_linked_list_test.h"
#include "double_link_list_test.h"

using namespace std;

// 执行
int main() {

    cout << "--------------------顺序表的测试案例----------------------" << endl;

    SeqListTest::TestInsert();

    SeqListTest::TestCopyConstructor();

    SeqListTest::TestRemove();

    SeqListTest::TestCapacity();

    SeqListTest::TestLength();

    SeqListTest::TestEmpty();

    SeqListTest::TestSearch();

    SeqListTest::TestGetData();

    SeqListTest::TestSetData();

    SeqListTest::TestUnion();

    cout << "---------------------------------------------------" << endl;

    cout << "--------------------单链表的测试案例----------------------" << endl;
    // 测试-单向链表-复制构造
    SingleLinkListTest::TestCopyConstructor();

    SingleLinkListTest::TestInsert();

    SingleLinkListTest::TestLength();

    // 测试-单向链表-删除结点
    SingleLinkListTest::TestRemove();

    // 测试-单向链表-清空
    SingleLinkListTest::TestClear();

    SingleLinkListTest::TestSearch();

    // 测试-单向链表-获取结点
    SingleLinkListTest::TestGetNode();

    // 测试-单向链表-设置和获取数据
    SingleLinkListTest::TestGetDataAndSetData();

    cout << "---------------------------------------------------" << endl;

    cout << "--------------------单链表的测试案例----------------------" << endl;

    // 测试-双向链表-插入
    DoubleLinkListTest::TestInsert();

    // 测试-双向链表-删除结点
    DoubleLinkListTest::TestRemove();

    // 测试-双向链表-搜索
    DoubleLinkListTest::TestSearch();

    // 测试-双向链表-长度
    DoubleLinkListTest::TestLength();

    // 测试-双向链表-清空
    DoubleLinkListTest::TestClear();

    cout << "------------------------------------------------------" << endl;

    system("pause");
    return 0;
}
